home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1996 / MacHack 1996.toast / Hacks / Hacks '96 / Internet Chooser / reggie / light / bsdsocks.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-21  |  2.5 KB  |  82 lines  |  [TEXT/MMCC]

  1. /* File "bsdsocks.c", Light Sockets - Copyright (C) Matt Slot, 1996           */
  2. /* BSD/UNIX sockets implementation for "Light Sockets" abstraction library.   */
  3.  
  4. #ifndef __BSD_SOCKETS_HEADER__
  5. #define __BSD_SOCKETS_HEADER__
  6.  
  7. #ifndef __STD_TYPES_HEADER__
  8. #include "stdtypes.h"
  9. #endif /* __STD_TYPES_HEADER__ */
  10.  
  11. #ifndef __NET_STACK_HEADER__
  12. #include "netstack.h"
  13. #endif /* __NET_STACK_HEADER__ */
  14.  
  15. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  16. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  17. /* Preprocessor Defines */
  18.  
  19. #define PING_BUFFER_SIZE    1024
  20.  
  21. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  22. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  23. /* Enum/Structure/Class Definitions */
  24.  
  25. typedef class BSDSocketStack : public NetworkStack {
  26.  
  27. public:
  28.  
  29.     /* Constructor/Destructor */
  30.                             BSDSocketStack    (SocketRef socket);
  31.     virtual                    ~BSDSocketStack    (void);
  32.  
  33.  
  34.     /* Network stack dispatch */
  35.     virtual SocketResult     DoLoad            (void);
  36.     virtual SocketResult     DoUnload        (void);
  37.     
  38.  
  39.     /* Socket-based dispatch */
  40.     virtual SocketResult     DoCreate        (void);
  41.     virtual SocketResult     DoTickle        (void);
  42.     virtual SocketResult     DoDispose        (void);
  43.  
  44.     virtual SocketResult     DoBind            (SocketAddressPtr reqAddress,
  45.                                                 SocketAddressPtr retAddress);
  46.     virtual SocketResult     DoUnbind        (void);
  47.  
  48.  
  49.     /* Name service dispatch */
  50.     virtual SocketResult    DoAddressResolve(Char8 *textAddress,
  51.                                     SocketAddressPtr socketAddress);
  52.     virtual SocketResult    DoAddressLookup (SocketAddressPtr socketAddress,
  53.                                     Char8 *textAddress);
  54.  
  55.     /* Datagram-based dispatch */
  56.     virtual SocketResult     DoDatagramWrite    (Byte8 *dataPtr, UInt32 dataLen,
  57.                                                 SocketAddressPtr address);
  58.  
  59.     /* Stream-based dispatch */
  60.     virtual SocketResult     DoStreamServer    (UInt32 sessions);
  61.     virtual SocketResult     DoStreamClient    (SocketAddressPtr address);
  62.     virtual SocketResult     DoStreamWrite    (Byte8 *dataPtr, UInt32 dataLen);
  63.     virtual SocketResult     DoStreamClose    (Bool8 orderly);
  64.  
  65.  
  66. private:
  67.             Int                theSocket;
  68.  
  69.     } BSDSocketStack, *BSDSocketStackRef;
  70.  
  71. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  72. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  73. /* Function Prototypes */
  74.  
  75.  
  76. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  77. /* **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** */
  78.  
  79.  
  80. #endif /* __BSD_SOCKETS_HEADER__ */
  81.  
  82.